package com.shop.cloud.domain.hongfu;

import io.swagger.annotations.ApiModelProperty;

import java.sql.Timestamp;

import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.shop.cloud.common.mybatis.BaseEntity;

/**
 * 
 * message-消息管理
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler",
		"fieldHandler" }, ignoreUnknown = true)
public class Message extends BaseEntity {

	private static final long serialVersionUID = 1L;

	public static final int TYPE_SYS = 1; // 系统消息
	public static final int TYPE_ORDER = 2; // 订单消息

	/**
	 * 接收用户id号。0： 发给全体用户。
	 */
	@ApiModelProperty(value = "接收用户id号。0： 发给全体用户。")
	private Long userId;
	/**
	 * 消息类型。1: 系统消息 2: 订单消息
	 */
	@ApiModelProperty(value = "消息类型。1: 系统消息 2: 订单消息")
	private Integer type;
	/**
	 * 消息类型为系统消息时不为空 0：全部用户 1：门店用户
	 */
	@ApiModelProperty(value = "消息类型为系统消息时不为空 0：全部用户 1：门店用户")
	private Integer pushType;
	/**
	 * 类型为系统消息时不为空 推送用户为门店用户时存储门店ID
	 */
	@ApiModelProperty(value = "类型为系统消息时不为空 推送用户为门店用户时存储门店ID")
	private Long pushId;
	/**
	 * 消息内容
	 */
	@ApiModelProperty(value = "消息内容")
	private String content;
	/**
	 * 消息创建时间
	 */
	@ApiModelProperty(value = "消息创建时间")
	private Timestamp createTime;
	/**
	 * 如果是订单消息。对应的为订单id号。
	 */
	@ApiModelProperty(value = "如果是订单消息。对应的为订单id号。")
	private String orderId;
	/**
	 * 是否鸿豆相关的系统消息。0: 否 1: 是
	 */
	@ApiModelProperty(value = "是否鸿豆相关的系统消息。0: 否 1: 是")
	private Integer isHongdou;
	/**
	 * 消息标题
	 */
	@ApiModelProperty(value = "消息标题")
	private String title;
	/**
	 * 定时推送时间 消息类型为系统消息时不能为空
	 */
	@ApiModelProperty(value = "定时推送时间 消息类型为系统消息时不能为空")
	private Timestamp displayTime;
	/**
	 * 状态 0：有效 1：无效
	 */
	@ApiModelProperty(value = "状态 0：有效 1：无效")
	private Integer status;
	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
	private String remark;

	@ApiModelProperty(value = "是否已读：0-未读  1-已读")
	private Integer isRead;

	@ApiModelProperty(value = "是否已推送：0-未推送  1-已推送")
	private Integer isPush;

	public Message() {

	}

	public Integer getIsPush() {
		return isPush;
	}

	public void setIsPush(Integer isPush) {
		this.isPush = isPush;
	}

	public Integer getIsRead() {
		return isRead;
	}

	public void setIsRead(Integer isRead) {
		this.isRead = isRead;
	}

	public Long getUserId() {
		return this.userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public Integer getType() {
		return this.type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public Integer getPushType() {
		return this.pushType;
	}

	public void setPushType(Integer pushType) {
		this.pushType = pushType;
	}

	public Long getPushId() {
		return this.pushId;
	}

	public void setPushId(Long pushId) {
		this.pushId = pushId;
	}

	public String getContent() {
		return this.content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getOrderId() {
		return this.orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}

	public Integer getIsHongdou() {
		return this.isHongdou;
	}

	public void setIsHongdou(Integer isHongdou) {
		this.isHongdou = isHongdou;
	}

	public String getTitle() {
		return this.title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public Integer getStatus() {
		return this.status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Timestamp getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Timestamp createTime) {
		this.createTime = createTime;
	}

	public Timestamp getDisplayTime() {
		return displayTime;
	}

	public void setDisplayTime(Timestamp displayTime) {
		this.displayTime = displayTime;
	}

}